package com.eliaukjq.jqrpc.server;

import io.vertx.core.Vertx;

/**
 * @Author : 佩萁
 * Description :基于Vert.x实现web服务器VertxHttpServer，监听指定端口并处理请求
 * @Create : 2024/2/23 - 11:22
 */
public class VertxHttpServer implements HttpServer {
    @Override
    public void doStart(int port) {
        //创建Vert.x实例
        Vertx vertx = Vertx.vertx();
        //创建Http服务器
        io.vertx.core.http.HttpServer server = vertx.createHttpServer();
        //监听指定端口
//        server.requestHandler(request ->{
//            //处理请求
//            System.out.println("收到请求：" + request.method()+ " " + request.uri());
//            //发送Http响应
//            request.response().putHeader("content-type","text/plain")
//                    .end("Hello, from Vert.x Http Server!");
//        });
        //监听端口并处理请求
        server.requestHandler(new HttpServerHandler());

        //启动服务器
//        server.listen(port,result ->{
//            if (result.succeeded()){
//                System.out.println("服务器启动成功，监听端口：" + port);
//            }else {
//                System.out.println("服务器启动失败：" + result.cause().getMessage());
//            }
//            vertx.close();
//        });
        server.listen(port,result->{
            if (result.succeeded()){
                System.out.println("服务器启动成功，监听端口：" + port);
            }else {
                System.err.println("服务器启动失败：" + result.cause());
            }
        });
    }
}
